Whereas a lot of devices such as pointing devices, a game controllers or sensors may be used to interact with a computer, a keyboard still remains the main interface for a user to enter a text using a word processor. In the word processing domain, the typing speed up combined with the word syntax checking opens a reliability concern. Several solutions exist to assist a user and improve the efficiency of the typing. One of them is the word prediction.
Generally, the predictive analysis solutions propose a word or a list of words to the user after having identified the leading letter(s) of the desired word. The identification of the first typed letters initiates a recognition mechanism that allow to complete the rest of the word by the algorithm of the prediction software. The user then has to confirm the proposed word by striking a specific key or any command made available for this action or disregard it. This may lead to the necessity of reinitiating the process when the predictive word is not the one as expected. In such case, the user must cancel the proposed word and re-launch the process. Such recovery is a limitation to a speed up improvement. For example, for a word like “incompetent” the user has to type nearly all the letters till a differentiation occurs with the close word “incompetence”.
In addition, long expressions and/or group of words like “according to our discussion” or “I am pleased to submit our offer” are not yet supported by the existing predictive analysis solutions.
Based on the same prediction concept, another method presents a predefined list of words from which the user has to select the one he wants. Once again, this learning approach on which a word library is displayed to the user to select the appropriate word considerably slows down the typing performance expected.
Other solutions to speed up typing are based on the generation of predefined commands in order to execute system tasks but those are generally reserved to invoke menu command or to execute program on the system not to display frequently used expressions.
Several solutions describe configurable keyboards to help inexperienced users improve their keyboard flexibility. However, these systems are not suitable to speed up the word processing typing.
Finally, advanced solutions based on macro utilities allow a user to vary key stroke assignment by changing key ordering and obtaining upgradeable hotkey sequence configurations. This flexibility allows the user to enable or disable the hotkey sequence with regard to a given application. Although the macro utilities exercising seems not to be too complicated for a skilled person, it is not adapted to an inexperienced user having to set up specific macros for his/her day-to-day environment.
In addition, the generation of a new hotkey sequences can conflict with other ones that are already included in the system. In this case the user must be aware of the existing hotkey sequences of the application he/she runs to avoid such conflict.
This effect may also appear when external users create macros to be shared between several users, like sharing spreadsheets for example. This issue is easily detectable by the skilled user who is able to initiate the corrective action, but could be a critical issue very complex or impossible to recover for the inexperienced user.
Finally, all the aforementioned methods present several drawbacks, some of which are the following:                The typing speed up combined with the word syntax checking reliability lead to limitations when using the word predictive method.        Typing with aggressive performance constraints renders prediction laborious when identifying words which contain lots of similar characters.        Confirmation of the predicted word by using command available or specific key for this action generates an additional user operation.        Prediction of the word that is not the one as expected initiates additional user interactions to cancel and to restart the process.        Storing a predefined expression is not included in the predictive technology.        The solution that presents a list of words based on the learning approach on which a word library is displayed to select the appropriate word considerably slows down the typing performance.        Existing solutions to execute software applications are reserved for the operating system.        Exercising the macro utilities from the configuration to the application is too complex for non-skilled people.        
Therefore, the lack of flexibility in the systems configuration has created a need for a solution to improve both the user typing speed performance and for an easy mechanism of hotkey setting and generation.
The present invention offers a solution to solve the aforementioned problems.